刪除檔案的部分,首先要先把欄位列印出來
資料表一樣參考第23天的文章
https://ithelp.ithome.com.tw/articles/10270360
這次列印的部分會稍長一些
為了把"審核通過"文件的刪除按鈕給禁止使用,所以把資料表分成兩個部份來列印,
原本是想用 if echo 來做,可是因為語法或架構問題,不知該if什麼條件來禁用刪除。
<!-- 資料表1階 顯示 審核中、尚未通過 的檔案-->
<?php
if(isset($_SESSION['auth']))
{
$idd = $_SESSION['auth_user']['user_id'];
//搜尋 符合你帳號,且非"審核通過"的文件
//下面 ORDER BY 是排序而已
$query = "SELECT * FROM document WHERE id = '$idd' AND doc_pass !='1'
ORDER BY doc_pass DESC, doc_type ASC,doc_id DESC ";
}
$query_run = mysqli_query($con,$query);
?>
<!-- 資料表2階 -->
<?php
if(isset($_SESSION['auth']))
{
$iddZ = $_SESSION['auth_user']['user_id'];
//搜尋 符合你帳號,且是"審核通過"的文件,且之後刪除欄位那邊不列印按鈕
$queryZ = "SELECT * FROM document WHERE id = '$iddZ' AND doc_pass ='1'
ORDER BY doc_type ASC, doc_id DESC";
}
$query_runZ = mysqli_query($con,$queryZ);
?>
<!---檔案列表 1階--------------------------->
<table class="table table-sm table-bordered"style="text-align:center;">
<thead style="text-align:center;">
<tr style="text-align:center;">
<th>檔案類別</th>
<th>檔案預覽</th>
<th>審核備註</th>
<th>文件狀態</th>
<th>刪除</th>
</tr>
</thead>
<tbody>
<?php
if(mysqli_num_rows($query_run) > 0)
{
$DE = $_SESSION['auth_user']['user_id'];
foreach($query_run as $row)
{
?>
<tr>
<td style=";"><?php echo $row['doc_type']; ?></td>
<td style="max-width: 190px; font-size: 17px;">
<a href="index2.php?downl_file=<?php echo $row['stu_img'] ?>">
<?php echo $row['stu_img']; ?>
</a><br>
<?php echo $row['doc_date']; ?>
</td>
<td style="max-width: 200px;width: 200px">
<sub><?php echo $row['tea_mark']; ?></sub>
</td>
<td>
<?php
if($row['doc_pass'] =='1')
{
echo '<font color="BLUE" style="font-weight:bold;">通過</font>';
}
elseif($row['doc_pass'] =='0')
{
echo '<font color="RED" style="font-weight:bold;">不通過</font>';
}
else
{
echo '<font color="GRAY" style="font-weight:bold;">
審核中
</font>';
}
?>
</td>
<td>
<form method="POST">
<input type="hidden" name="delete_id" value="<?php echo $row['doc_id']; ?>">
<input type="hidden" name="del_stu_img" value="<?php echo $row['stu_img']; ?>">
<button id="delete_btn"type="submit" name="delete_stu_img"
class="badge badge-danger"
onclick="javascript:return del();">
刪除
</button>
</form>
</td>
</tr>
<?php
}
}
else
{
}
?>
</tbody>
<!---檔案列表 2階--------------------------->
<tbody>
<?php
if(mysqli_num_rows($query_runZ) > 0)
{
foreach($query_runZ as $rowZ)
{
?>
<tr>
<td style=" opacity: 0.7;"><?php echo $rowZ['doc_type']; ?></td>
<td style=" opacity: 0.7;max-width: 190px;">
<a href="index2.php?downl_file=<?php echo $rowZ['stu_img'] ?>">
<?php echo $rowZ['stu_img']; ?>
</a><br>
<?php echo $rowZ['doc_date']; ?>
</td>
<td style="max-width: 200px;width: 200px;opacity: 0.6;">
<sub><?php echo $rowZ['tea_mark']; ?></sub>
</td>
<td>
<?php
if($rowZ['doc_pass'] =='1')
{
echo '<font color="BLUE" style="font-weight:bold;">通過</font>';
}
elseif($rowZ['doc_pass'] =='0')
{
echo '<font color="RED" style="font-weight:bold;">不通過</font>';
}
else
{
echo '<font color="GRAY" style="font-weight:bold;">
審核中...
</font>';
}
?>
</td>
<td style=" opacity: 0.7;">
--
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
再來是刪除檔案的php (主要是下面的 unlink執行刪除,其餘是為了判斷刪除哪個)
<?php
/*刪除檔案...*/
if (isset($_POST['delete_stu_img']))
{
$id = $_POST['delete_id'];
$stu_img = $_POST['del_stu_img'];
$query = "DELETE FROM document WHERE doc_id='$id' ";
$query_run = mysqli_query($con,$query);
if($query_run)
{
unlink("uploads/$DE/".$stu_img);
$_SESSION['status'] ="檔案刪除成功!";
setcookie("COOK01","", time()-1200);
header('Location: index2.php');
}
else
{
$_SESSION['status'] ="檔案刪除失敗!";
header('Location: index2.php');
}
}
?>
因為很少寫程式,當初為了禁用刪除按鈕的判斷,就想了好久,最後是用很暴力的方法來解(不同搜尋條件)...
今天就先這樣,下次見。